package service;

import controladoresJpa.ParticipacaoEntidadeRelacionamentoJpaController;
import controladoresJpa.exceptions.IllegalOrphanException;
import controladoresJpa.exceptions.NonexistentEntityException;
import java.io.Serializable;
import java.util.Iterator;
import java.util.List;
import model.ParticipacaoEntidadeRelacionamento;




/**
 * Módulo MER
 * Classe respons�vel por definir o papel de um entidadeService em um relacionamentoService.
 * @author Eduardo, Maylon e Kamilla
 *
 */
public class ParticipacaoEntidadeRelacionamentoService  implements Serializable{
	private ParticipacaoEntidadeRelacionamentoJpaController jpa;

        public ParticipacaoEntidadeRelacionamentoService() {
            jpa = new ParticipacaoEntidadeRelacionamentoJpaController();
        }

        /**
         * Método responsável por salvar e atualizar uma Participacao do Modelo Entidade-Relacionamento.
         * @param objeto atributo a ser salvo.
         * @throws NonexistentEntityException exceção NonexistentEntityException.
         * @throws Exception exceção.
         */
        public void salvar(ParticipacaoEntidadeRelacionamento objeto) throws NonexistentEntityException, Exception {
            if(this.encontrado(objeto))
                jpa.edit(objeto); 
            else
                jpa.create(objeto);
        }

         /**
         * Método responsável por excluir uma Participacao do Modelo Entidade-Relacionamento.
         * @param objeto atriubuto a ser excluido.
         * @throws NonexistentEntityException exceção NonexistentEntityException.
         */
        public void excluir(ParticipacaoEntidadeRelacionamento objeto) throws NonexistentEntityException, IllegalOrphanException {
            if(this.encontrado(objeto))
                jpa.destroy(objeto.getPapel()); 
        }

        
        public List<ParticipacaoEntidadeRelacionamento> recarregar() {
            return jpa.findParticipacaoEntidadeRelacionamentoEntities();
        }
        
        public boolean encontrado(ParticipacaoEntidadeRelacionamento objeto){
            List lst = jpa.findParticipacaoEntidadeRelacionamentoEntities();
            Iterator i = lst.iterator();
            boolean achei = false;
            while(!achei && i.hasNext()){
                ParticipacaoEntidadeRelacionamento a = (ParticipacaoEntidadeRelacionamento) i.next();
                if(objeto.getPapel().equals(a.getPapel()))
                    return true;
            }
            return false;
        }
}
